﻿
namespace Content.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies ContentRowMetadata as the class
    // that carries additional metadata for the ContentRow class.
    [MetadataTypeAttribute(typeof(ContentRow.ContentRowMetadata))]
    public partial class ContentRow
    {

        // This class allows you to attach custom attributes to properties
        // of the ContentRow class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContentRowMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContentRowMetadata()
            {
            }

            public Guid ContentRowID { get; set; }

            public byte[] ContentRowImageData { get; set; }

            public string ContentRowRichText { get; set; }

            public string ContentRowText { get; set; }

            public string ImageFileName { get; set; }

            public Nullable<int> Ordinal { get; set; }

            public Unit Unit { get; set; }

            public Nullable<Guid> UnitID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BulletPointMetadata as the class
    // that carries additional metadata for the BulletPoint class.
    [MetadataTypeAttribute(typeof(BulletPoint.BulletPointMetadata))]
    public partial class BulletPoint
    {

        // This class allows you to attach custom attributes to properties
        // of the BulletPoint class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BulletPointMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BulletPointMetadata()
            {
            }

            public string BulletItem { get; set; }

            public Guid BulletPointID { get; set; }

            public string Details { get; set; }

            public short Ordinal { get; set; }

            public Unit Unit { get; set; }

            public Guid UnitID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UnitMetadata as the class
    // that carries additional metadata for the Unit class.
    [MetadataTypeAttribute(typeof(Unit.UnitMetadata))]
    public partial class Unit
    {

        // This class allows you to attach custom attributes to properties
        // of the Unit class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UnitMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UnitMetadata()
            {
            }

            public EntityCollection<BulletPoint> BulletPoints { get; set; }

            public string Description { get; set; }


            public byte[] ImageData { get; set; }

            public string UnitText { get; set; }

            public Guid UnitID { get; set; }
        }
    }
}
